package com.fypg.module.blooddonation.api.client.dal.bloodStation;

import com.fypg.framework.common.util.json.JsonUtils;
import com.fypg.module.blooddonation.api.client.utils.Sm4KeyUtil;
import lombok.Data;

// 修改BaseResponse.java中的JSON反序列化
@Data
public class BaseResponse<T> {
    private ResponseHead head;
    private String data;

    /**
     * 获取解密后的数据
     */
    public T getDecryptedData(Class<T> clazz, String sm4Key) {
        try {
            // 使用真正的 SM4 解密
            String jsonData = Sm4KeyUtil.sm4Decrypt(this.data, sm4Key);
            return JsonUtils.parseObject(jsonData, clazz);
        } catch (Exception e) {
            throw new RuntimeException("数据解密失败", e);
        }
    }

    /**
     * 检查 HTTP 响应是否成功
     */
    public boolean isHttpSuccess() {
        return head != null && "200".equals(head.getResponseCode());
    }

    // 添加getter方法确保可以访问head的字段
    public String getResponseCode() {
        return head != null ? head.getResponseCode() : null;
    }

    public String getHeadCreateTime() {
        return head != null ? head.getCreateTime() : null;
    }

    public String getServiceId() {
        return head != null ? head.getServiceId() : null;
    }
}
